Autogenerated HTML docs for v2.14.1-536-g68672
diff --git a/RelNotes/2.14.2.txt b/RelNotes/2.14.2.txt index 5517afc..bcfe78f 100644 --- a/RelNotes/2.14.2.txt +++ b/RelNotes/2.14.2.txt
@@ -32,4 +32,63 @@ daemon is torn down were flaky. This was fixed by reacting to ECONNRESET and behaving as if we got an EOF. + * Some versions of GnuPG fail to kill gpg-agent it auto-spawned + and such a left-over agent can interfere with a test. Work it + around by attempting to kill one before starting a new test. + + * "git log --tag=no-such-tag" showed log starting from HEAD, which + has been fixed---it now shows nothing. + + * The "tag.pager" configuration variable was useless for those who + actually create tag objects, as it interfered with the use of an + editor. A new mechanism has been introduced for commands to enable + pager depending on what operation is being carried out to fix this, + and then "git tag -l" is made to run pager by default. + + * "git push --recurse-submodules $there HEAD:$target" was not + propagated down to the submodules, but now it is. + + * Commands like "git rebase" accepted the --rerere-autoupdate option + from the command line, but did not always use it. This has been + fixed. + + * "git clone --recurse-submodules --quiet" did not pass the quiet + option down to submodules. + + * "git am -s" has been taught that some input may end with a trailer + block that is not Signed-off-by: and it should refrain from adding + an extra blank line before adding a new sign-off in such a case. + + * "git svn" used with "--localtime" option did not compute the tz + offset for the timestamp in question and instead always used the + current time, which has been corrected. + + * Memory leaks in a few error codepaths have been plugged. + + * bash 4.4 or newer gave a warning on NUL byte in command + substitution done in "git stash"; this has been squelched. + + * "git grep -L" and "git grep --quiet -L" reported different exit + codes; this has been corrected. + + * When handshake with a subprocess filter notices that the process + asked for an unknown capability, Git did not report what program + the offending subprocess was running. This has been corrected. + + * "git apply" that is used as a better "patch -p1" failed to apply a + taken from a file with CRLF line endings to a file with CRLF line + endings. The root cause was because it misused convert_to_git() + that tried to do "safe-crlf" processing by looking at the index + entry at the same path, which is a nonsense---in that mode, "apply" + is not working on the data in (or derived from) the index at all. + This has been fixed. + + * Killing "git merge --edit" before the editor returns control left + the repository in a state with MERGE_MSG but without MERGE_HEAD, + which incorrectly tells the subsequent "git commit" that there was + a squash merge in progress. This has been fixed. + + * "git archive" did not work well with pathspecs and the + export-ignore attribute. + Also contains various documentation updates and code clean-ups.
diff --git a/RelNotes/2.15.0.txt b/RelNotes/2.15.0.txt index 4b3fd22..31f7b0e 100644 --- a/RelNotes/2.15.0.txt +++ b/RelNotes/2.15.0.txt
@@ -77,6 +77,9 @@ * "branch --set-upstream" that has been deprecated in Git 1.8 has finally been retired. + * The codepath to call external process filter for smudge/clean + operation learned to show the progress meter. + Performance, Internal Implementation, Development Support etc. @@ -161,7 +164,6 @@ * Some versions of GnuPG fails to kill gpg-agent it auto-spawned and such a left-over agent can interfere with a test. Work it around by attempting to kill one before starting a new test. - (merge 29ff1f8f74 st/lib-gpg-kill-stray-agent later to maint). * A recently added test for the "credential-cache" helper revealed that EOF detection done around the time the connection to the cache @@ -170,49 +172,36 @@ * "git log --tag=no-such-tag" showed log starting from HEAD, which has been fixed---it now shows nothing. - (merge 5d34d1ac06 jk/rev-list-empty-input later to maint). * The "tag.pager" configuration variable was useless for those who actually create tag objects, as it interfered with the use of an editor. A new mechanism has been introduced for commands to enable pager depending on what operation is being carried out to fix this, and then "git tag -l" is made to run pager by default. - (merge 595d59e2b5 ma/pager-per-subcommand-action later to maint). * "git push --recurse-submodules $there HEAD:$target" was not propagated down to the submodules, but now it is. - (merge c7be7201a7 bw/push-options-recursively-to-submodules later to maint). * Commands like "git rebase" accepted the --rerere-autoupdate option from the command line, but did not always use it. This has been fixed. - (merge f826fb799e pw/sequence-rerere-autoupdate later to maint). * "git clone --recurse-submodules --quiet" did not pass the quiet option down to submodules. - (merge 03c004c581 bw/clone-recursive-quiet later to maint). * Test portability fix for OBSD. - (merge bed67874e2 rs/obsd-getcwd-workaround later to maint). - (merge 4c7fda8fc1 rs/t4062-obsd later to maint). * Portability fix for OBSD. - (merge 29c2eda80b rs/in-obsd-basename-dirname-take-const later to maint). * "git am -s" has been taught that some input may end with a trailer block that is not Signed-off-by: and it should refrain from adding an extra blank line before adding a new sign-off in such a case. - (merge 735285b403 pw/am-signoff later to maint). * "git svn" used with "--localtime" option did not compute the tz offset for the timestamp in question and instead always used the current time, which has been corrected. - (merge 1adc4b9a58 ur/svn-local-zone later to maint). * Memory leak in an error codepath has been plugged. - (merge 83cd6f9017 rs/fsck-obj-leakfix later to maint). - (merge 896dca3ab7 rs/unpack-entry-leakfix later to maint). - (merge 149d8cbb2e rs/win32-syslog-leakfix later to maint). * "git stash -u" used the contents of the committed version of the ".gitignore" file to decide which paths are ignored, even when the @@ -221,16 +210,13 @@ * bash 4.4 or newer gave a warning on NUL byte in command substitution done in "git stash"; this has been squelched. - (merge 5fc92f8828 kd/stash-with-bash-4.4 later to maint). * "git grep -L" and "git grep --quiet -L" reported different exit codes; this has been corrected. - (merge e1f68c66d5 as/grep-quiet-no-match-exit-code-fix later to maint). * When handshake with a subprocess filter notices that the process asked for an unknown capability, Git did not report what program the offending subprocess was running. This has been corrected. - (merge d3ba566342 cc/subprocess-handshake-missing-capabilities later to maint). * "git apply" that is used as a better "patch -p1" failed to apply a taken from a file with CRLF line endings to a file with CRLF line @@ -239,38 +225,29 @@ entry at the same path, which is a nonsense---in that mode, "apply" is not working on the data in (or derived from) the index at all. This has been fixed. - (merge c24f3abace tb/apply-with-crlf later to maint). * Killing "git merge --edit" before the editor returns control left the repository in a state with MERGE_MSG but without MERGE_HEAD, which incorrectly tells the subsequent "git commit" that there was a squash merge in progress. This has been fixed. - (merge 9d89b35526 mg/killed-merge later to maint). * "git archive" did not work well with pathspecs and the export-ignore attribute. - (merge 5ff247ac0c rs/archive-excluded-directory later to maint). + + * In addition to "cc: <a@dd.re.ss> # cruft", "cc: a@dd.re.ss # cruft" + was taught to "git send-email" as a valid way to tell it that it + needs to also send a carbon copy to <a@dd.re.ss> in the trailer + section. + (merge cc90750677 mm/send-email-cc-cruft later to maint). + + * "git branch -M a b" while on a branch that is completely unrelated + to either branch a or branch b misbehaved when multiple worktree + was in use. This has been fixed. + (merge 31824d180d nd/worktree-kill-parse-ref later to maint). * Other minor doc, test and build updates and code cleanups. - (merge dff2813391 ab/ref-filter-no-contains later to maint). (merge f094b89a4d ma/parse-maybe-bool later to maint). - (merge 974ce8078c mf/no-dashed-subcommands later to maint). - (merge f81935cc4d jc/perl-git-comment-typofix later to maint). - (merge 57ea241ef0 rs/t3700-clean-leftover later to maint). (merge 39b00fa4d4 jk/drop-sha1-entry-pos later to maint). - (merge 0b006014c8 jk/hashcmp-memcmp later to maint). - (merge 1e22a9917b rj/add-chmod-error-message later to maint). - (merge 881529c846 rs/apply-lose-prefix-length later to maint). - (merge 6355a76802 rs/find-pack-entry-bisection later to maint). - (merge de3ce210ed rs/merge-microcleanup later to maint). - (merge 7f0a02be2f ah/doc-empty-string-is-false later to maint). - (merge 70ec6bd63b rs/t1002-do-not-use-sum later to maint). - (merge 2456990dfd sb/sha1-file-cleanup later to maint). - (merge 2aac933c62 hv/t5526-andand-chain-fix later to maint). - (merge c8d0c4fe9b sb/submodule-parallel-update later to maint). - (merge 794b7e1674 mg/format-ref-doc-fix later to maint). - (merge 24da8a26a9 rs/commit-h-single-parent-cleanup later to maint). - (merge 4e36907fa3 jk/doc-the-this later to maint). - (merge 15d1d0951e bc/vcs-svn-cleanup later to maint). - (merge b8f43b120b jn/vcs-svn-cleanup later to maint). - (merge 4a4becfb23 jt/doc-pack-objects-fix later to maint). + (merge 6cdf8a7929 ma/ts-cleanups later to maint). + (merge 7560f547e6 ma/up-to-date later to maint). + (merge 0db3dc75f3 rs/apply-epoch later to maint).
diff --git a/git-apply.html b/git-apply.html index 35060f0..0efd8fc 100644 --- a/git-apply.html +++ b/git-apply.html
@@ -840,7 +840,7 @@ disables it is in effect), make sure the patch is applicable to what the current index file records. If the file to be patched in the working tree is not - up-to-date, it is flagged as an error. This flag also + up to date, it is flagged as an error. This flag also causes the index file to be updated. </p> </dd> @@ -1180,7 +1180,7 @@ <div class="paragraph"><p>If <code>--index</code> is specified (explicitly or implicitly), then the submodule commits must match the index exactly for the patch to apply. If any of the submodules are checked-out, then these check-outs are completely -ignored, i.e., they are not required to be up-to-date or clean and they +ignored, i.e., they are not required to be up to date or clean and they are not updated.</p></div> <div class="paragraph"><p>If <code>--index</code> is not specified, then the submodule commits in the patch are ignored and only the absence or presence of the corresponding @@ -1203,7 +1203,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2017-03-13 00:01:26 PDT +Last updated 2017-09-10 17:38:46 JST </div> </div> </body>
diff --git a/git-apply.txt b/git-apply.txt index 631cbd8..4ebc3d3 100644 --- a/git-apply.txt +++ b/git-apply.txt
@@ -66,7 +66,7 @@ disables it is in effect), make sure the patch is applicable to what the current index file records. If the file to be patched in the working tree is not - up-to-date, it is flagged as an error. This flag also + up to date, it is flagged as an error. This flag also causes the index file to be updated. --cached:: @@ -259,7 +259,7 @@ If `--index` is specified (explicitly or implicitly), then the submodule commits must match the index exactly for the patch to apply. If any of the submodules are checked-out, then these check-outs are completely -ignored, i.e., they are not required to be up-to-date or clean and they +ignored, i.e., they are not required to be up to date or clean and they are not updated. If `--index` is not specified, then the submodule commits in the patch
diff --git a/git-cvsserver.html b/git-cvsserver.html index 31fd276..b84cce2 100644 --- a/git-cvsserver.html +++ b/git-cvsserver.html
@@ -1014,7 +1014,7 @@ <div class="paragraph"><p>That means that even if you offer only read access (e.g. by using the pserver method), <em>git-cvsserver</em> should have write access to the database to work reliably (otherwise you need to make sure -that the database is up-to-date any time <em>git-cvsserver</em> is executed).</p></div> +that the database is up to date any time <em>git-cvsserver</em> is executed).</p></div> <div class="paragraph"><p>By default it uses SQLite databases in the Git directory, named <code>gitcvs.<module_name>.sqlite</code>. Note that the SQLite backend creates temporary files in the same directory as the database file on @@ -1311,7 +1311,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2016-07-13 14:58:50 PDT +Last updated 2017-09-10 17:38:46 JST </div> </div> </body>
diff --git a/git-cvsserver.txt b/git-cvsserver.txt index a336ae5..ba90066 100644 --- a/git-cvsserver.txt +++ b/git-cvsserver.txt
@@ -223,7 +223,7 @@ That means that even if you offer only read access (e.g. by using the pserver method), 'git-cvsserver' should have write access to the database to work reliably (otherwise you need to make sure -that the database is up-to-date any time 'git-cvsserver' is executed). +that the database is up to date any time 'git-cvsserver' is executed). By default it uses SQLite databases in the Git directory, named `gitcvs.<module_name>.sqlite`. Note that the SQLite backend creates
diff --git a/git-diff-index.html b/git-diff-index.html index 9a4f9a7..9a3477d 100644 --- a/git-diff-index.html +++ b/git-diff-index.html
@@ -2446,7 +2446,7 @@ <div class="literalblock"> <div class="content"> <pre><code>show me the differences between HEAD and the currently checked out -tree - index contents _and_ files that aren't up-to-date</code></pre> +tree - index contents _and_ files that aren't up to date</code></pre> </div></div> <div class="paragraph"><p>which is obviously a very useful question too, since that tells you what you <strong>could</strong> commit. Again, the output matches the <em>git diff-tree -r</em> @@ -2461,8 +2461,8 @@ <pre><code>torvalds@ppc970:~/v2.6/linux> git diff-index --abbrev HEAD :100644 100664 7476bb... 000000... kernel/sched.c</code></pre> </div></div> -<div class="paragraph"><p>i.e., it shows that the tree has changed, and that <code>kernel/sched.c</code> has is -not up-to-date and may contain new stuff. The all-zero sha1 means that to +<div class="paragraph"><p>i.e., it shows that the tree has changed, and that <code>kernel/sched.c</code> is +not up to date and may contain new stuff. The all-zero sha1 means that to get the real diff, you need to look at the object in the working directory directly rather than do an object-to-object diff.</p></div> <div class="admonitionblock"> @@ -2501,7 +2501,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2016-07-13 14:58:50 PDT +Last updated 2017-09-10 17:38:46 JST </div> </div> </body>
diff --git a/git-diff-index.txt b/git-diff-index.txt index a171506..b380677 100644 --- a/git-diff-index.txt +++ b/git-diff-index.txt
@@ -85,7 +85,7 @@ The non-cached version asks the question: show me the differences between HEAD and the currently checked out - tree - index contents _and_ files that aren't up-to-date + tree - index contents _and_ files that aren't up to date which is obviously a very useful question too, since that tells you what you *could* commit. Again, the output matches the 'git diff-tree -r' @@ -100,8 +100,8 @@ torvalds@ppc970:~/v2.6/linux> git diff-index --abbrev HEAD :100644 100664 7476bb... 000000... kernel/sched.c -i.e., it shows that the tree has changed, and that `kernel/sched.c` has is -not up-to-date and may contain new stuff. The all-zero sha1 means that to +i.e., it shows that the tree has changed, and that `kernel/sched.c` is +not up to date and may contain new stuff. The all-zero sha1 means that to get the real diff, you need to look at the object in the working directory directly rather than do an object-to-object diff.
diff --git a/git-merge.html b/git-merge.html index 88a65b0..1cc5244 100644 --- a/git-merge.html +++ b/git-merge.html
@@ -870,7 +870,7 @@ <dd> <p> Refuse to merge and exit with a non-zero status unless the - current <code>HEAD</code> is already up-to-date or the merge can be + current <code>HEAD</code> is already up to date or the merge can be resolved as a fast-forward. </p> </dd> @@ -1136,7 +1136,7 @@ exception is when the changed index entries are in the state that would result from the merge already.)</p></div> <div class="paragraph"><p>If all named commits are already ancestors of <code>HEAD</code>, <em>git merge</em> -will exit early with the message "Already up-to-date."</p></div> +will exit early with the message "Already up to date."</p></div> </div> </div> <div class="sect1"> @@ -1924,7 +1924,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2017-08-26 23:14:22 PDT +Last updated 2017-09-10 17:38:46 JST </div> </div> </body>
diff --git a/git-merge.txt b/git-merge.txt index 615e6ba..4df6431 100644 --- a/git-merge.txt +++ b/git-merge.txt
@@ -141,7 +141,7 @@ would result from the merge already.) If all named commits are already ancestors of `HEAD`, 'git merge' -will exit early with the message "Already up-to-date." +will exit early with the message "Already up to date." FAST-FORWARD MERGE ------------------
diff --git a/git-pull.html b/git-pull.html index 5ac6cf6..886a0ed 100644 --- a/git-pull.html +++ b/git-pull.html
@@ -913,7 +913,7 @@ <dd> <p> Refuse to merge and exit with a non-zero status unless the - current <code>HEAD</code> is already up-to-date or the merge can be + current <code>HEAD</code> is already up to date or the merge can be resolved as a fast-forward. </p> </dd> @@ -1980,7 +1980,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2017-07-13 16:37:56 PDT +Last updated 2017-07-14 08:37:56 JST </div> </div> </body>
diff --git a/git-rebase.html b/git-rebase.html index 1dfc4dd..cfe9815 100644 --- a/git-rebase.html +++ b/git-rebase.html
@@ -1208,7 +1208,7 @@ </dt> <dd> <p> - Force a rebase even if the current branch is up-to-date and + Force a rebase even if the current branch is up to date and the command without <code>--force</code> would return without doing anything. </p> <div class="paragraph"><p>You may find this (or --no-ff with an interactive rebase) helpful after @@ -2042,7 +2042,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2017-07-12 16:01:04 PDT +Last updated 2017-09-10 17:38:46 JST </div> </div> </body>
diff --git a/git-rebase.txt b/git-rebase.txt index 4f6bed6..6805a74 100644 --- a/git-rebase.txt +++ b/git-rebase.txt
@@ -334,7 +334,7 @@ -f:: --force-rebase:: - Force a rebase even if the current branch is up-to-date and + Force a rebase even if the current branch is up to date and the command without `--force` would return without doing anything. + You may find this (or --no-ff with an interactive rebase) helpful after
diff --git a/git-rerere.html b/git-rerere.html index d9dcd4c..0d7c595 100644 --- a/git-rerere.html +++ b/git-rerere.html
@@ -966,7 +966,7 @@ o---o---o---*---o---o---o---o master</code></pre> </div></div> <div class="paragraph"><p>you could run <code>git rebase master topic</code>, to bring yourself -up-to-date before your topic is ready to be sent upstream. +up to date before your topic is ready to be sent upstream. This would result in falling back to a three-way merge, and it would conflict the same way as the test merge you resolved earlier. <em>git rerere</em> will be run by <em>git rebase</em> to help you resolve this @@ -983,7 +983,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2015-03-23 14:31:16 PDT +Last updated 2017-09-10 17:38:46 JST </div> </div> </body>
diff --git a/git-rerere.txt b/git-rerere.txt index 9ee083c..031f31f 100644 --- a/git-rerere.txt +++ b/git-rerere.txt
@@ -205,7 +205,7 @@ ------------ you could run `git rebase master topic`, to bring yourself -up-to-date before your topic is ready to be sent upstream. +up to date before your topic is ready to be sent upstream. This would result in falling back to a three-way merge, and it would conflict the same way as the test merge you resolved earlier. 'git rerere' will be run by 'git rebase' to help you resolve this
diff --git a/git-rm.html b/git-rm.html index 0b06c9a..f14cdf0 100644 --- a/git-rm.html +++ b/git-rm.html
@@ -938,7 +938,7 @@ the submodule’s history. If it exists the submodule.<name> section in the <a href="gitmodules.html">gitmodules(5)</a> file will also be removed and that file will be staged (unless --cached or -n are used).</p></div> -<div class="paragraph"><p>A submodule is considered up-to-date when the HEAD is the same as +<div class="paragraph"><p>A submodule is considered up to date when the HEAD is the same as recorded in the index, no tracked files are modified and no untracked files that aren’t ignored are present in the submodules work tree. Ignored files are deemed expendable and won’t stop a submodule’s work @@ -1004,7 +1004,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2017-07-12 16:01:04 PDT +Last updated 2017-09-10 17:38:46 JST </div> </div> </body>
diff --git a/git-rm.txt b/git-rm.txt index 683e591..b5c4622 100644 --- a/git-rm.txt +++ b/git-rm.txt
@@ -146,7 +146,7 @@ in the linkgit:gitmodules[5] file will also be removed and that file will be staged (unless --cached or -n are used). -A submodule is considered up-to-date when the HEAD is the same as +A submodule is considered up to date when the HEAD is the same as recorded in the index, no tracked files are modified and no untracked files that aren't ignored are present in the submodules work tree. Ignored files are deemed expendable and won't stop a submodule's work
diff --git a/git-svn.html b/git-svn.html index 6d54c04..04d68f3 100644 --- a/git-svn.html +++ b/git-svn.html
@@ -1498,7 +1498,7 @@ <p> You should consider using <em>dcommit</em> instead of this command. Commit specified commit or tree objects to SVN. This relies on - your imported fetch data being up-to-date. This makes + your imported fetch data being up to date. This makes absolutely no attempts to do patching when committing to SVN, it simply overwrites files with those specified in the tree or commit. All merging is assumed to have taken place @@ -2506,7 +2506,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2017-06-19 13:09:59 PDT +Last updated 2017-09-10 17:38:46 JST </div> </div> </body>
diff --git a/git-svn.txt b/git-svn.txt index aa2aeab..636e090 100644 --- a/git-svn.txt +++ b/git-svn.txt
@@ -424,7 +424,7 @@ 'set-tree':: You should consider using 'dcommit' instead of this command. Commit specified commit or tree objects to SVN. This relies on - your imported fetch data being up-to-date. This makes + your imported fetch data being up to date. This makes absolutely no attempts to do patching when committing to SVN, it simply overwrites files with those specified in the tree or commit. All merging is assumed to have taken place
diff --git a/git-update-index.html b/git-update-index.html index 7e9ae2c..a03b6aa 100644 --- a/git-update-index.html +++ b/git-update-index.html
@@ -1106,7 +1106,7 @@ <h2 id="_using_refresh">Using --refresh</h2> <div class="sectionbody"> <div class="paragraph"><p><code>--refresh</code> does not calculate a new sha1 file or bring the index -up-to-date for mode/content changes. But what it <strong>does</strong> do is to +up to date for mode/content changes. But what it <strong>does</strong> do is to "re-match" the stat information of a file with the index, so that you can refresh the index for a file that hasn’t been changed but where the stat entry is out of date.</p></div> @@ -1418,7 +1418,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2017-03-17 14:07:06 PDT +Last updated 2017-09-10 17:38:46 JST </div> </div> </body>
diff --git a/git-update-index.txt b/git-update-index.txt index 1579abf..e19eba6 100644 --- a/git-update-index.txt +++ b/git-update-index.txt
@@ -214,7 +214,7 @@ Using --refresh --------------- `--refresh` does not calculate a new sha1 file or bring the index -up-to-date for mode/content changes. But what it *does* do is to +up to date for mode/content changes. But what it *does* do is to "re-match" the stat information of a file with the index, so that you can refresh the index for a file that hasn't been changed but where the stat entry is out of date.
diff --git a/gitcore-tutorial.html b/gitcore-tutorial.html index 84fd3e7..a6b6d18 100644 --- a/gitcore-tutorial.html +++ b/gitcore-tutorial.html
@@ -1367,7 +1367,7 @@ <div class="content"> <pre><code>$ git update-index --refresh</code></pre> </div></div> -<div class="paragraph"><p>in the new repository to make sure that the index file is up-to-date.</p></div> +<div class="paragraph"><p>in the new repository to make sure that the index file is up to date.</p></div> </li> </ul></div> <div class="paragraph"><p>Note that the second point is true even across machines. You can @@ -1429,7 +1429,7 @@ <pre><code>$ git checkout-index -u -a</code></pre> </div></div> <div class="paragraph"><p>where the <code>-u</code> flag means that you want the checkout to keep the index -up-to-date (so that you don’t have to refresh it afterward), and the +up to date (so that you don’t have to refresh it afterward), and the <code>-a</code> flag means "check out all files" (if you have a stale copy or an older version of a checked out tree you may also need to add the <code>-f</code> flag first, to tell <em>git checkout-index</em> to <strong>force</strong> overwriting of any old @@ -2011,7 +2011,7 @@ run a single command, <em>git-receive-pack</em>.</p></div> <div class="paragraph"><p>First, you need to create an empty repository on the remote machine that will house your public repository. This empty -repository will be populated and be kept up-to-date by pushing +repository will be populated and be kept up to date by pushing into it later. Obviously, this repository creation needs to be done only once.</p></div> <div class="admonitionblock"> @@ -2193,7 +2193,7 @@ would contain a call to <em>git update-server-info</em> but you need to manually enable the hook with <code>mv post-update.sample post-update</code>. This makes sure -<em>git update-server-info</em> keeps the necessary files up-to-date.</p></div> +<em>git update-server-info</em> keeps the necessary files up to date.</p></div> </li> <li> <p> @@ -2457,7 +2457,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2017-04-26 19:19:22 PDT +Last updated 2017-09-10 17:38:46 JST </div> </div> </body>
diff --git a/gitcore-tutorial.txt b/gitcore-tutorial.txt index 7577f27..e29a9ef 100644 --- a/gitcore-tutorial.txt +++ b/gitcore-tutorial.txt
@@ -631,7 +631,7 @@ $ git update-index --refresh ---------------- + -in the new repository to make sure that the index file is up-to-date. +in the new repository to make sure that the index file is up to date. Note that the second point is true even across machines. You can duplicate a remote Git repository with *any* regular copy mechanism, be it @@ -701,7 +701,7 @@ ---------------- where the `-u` flag means that you want the checkout to keep the index -up-to-date (so that you don't have to refresh it afterward), and the +up to date (so that you don't have to refresh it afterward), and the `-a` flag means "check out all files" (if you have a stale copy or an older version of a checked out tree you may also need to add the `-f` flag first, to tell 'git checkout-index' to *force* overwriting of any old @@ -1283,7 +1283,7 @@ First, you need to create an empty repository on the remote machine that will house your public repository. This empty -repository will be populated and be kept up-to-date by pushing +repository will be populated and be kept up to date by pushing into it later. Obviously, this repository creation needs to be done only once. @@ -1450,7 +1450,7 @@ would contain a call to 'git update-server-info' but you need to manually enable the hook with `mv post-update.sample post-update`. This makes sure -'git update-server-info' keeps the necessary files up-to-date. +'git update-server-info' keeps the necessary files up to date. 3. Push into the public repository from your primary repository.
diff --git a/githooks.html b/githooks.html index 10b61e6..997693c 100644 --- a/githooks.html +++ b/githooks.html
@@ -1060,7 +1060,7 @@ them.</p></div> <div class="paragraph"><p>When enabled, the default <em>post-update</em> hook runs <em>git update-server-info</em> to keep the information used by dumb -transports (e.g., HTTP) up-to-date. If you are publishing +transports (e.g., HTTP) up to date. If you are publishing a Git repository that is accessible via HTTP, you should probably enable this hook.</p></div> <div class="paragraph"><p>Both standard output and standard error output are forwarded to @@ -1154,7 +1154,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2017-08-22 11:31:59 PDT +Last updated 2017-09-10 17:38:46 JST </div> </div> </body>
diff --git a/githooks.txt b/githooks.txt index 623ed1a..1bb4f92 100644 --- a/githooks.txt +++ b/githooks.txt
@@ -369,7 +369,7 @@ When enabled, the default 'post-update' hook runs 'git update-server-info' to keep the information used by dumb -transports (e.g., HTTP) up-to-date. If you are publishing +transports (e.g., HTTP) up to date. If you are publishing a Git repository that is accessible via HTTP, you should probably enable this hook.
diff --git a/gitrepository-layout.html b/gitrepository-layout.html index 0eee30f..d6b85c3 100644 --- a/gitrepository-layout.html +++ b/gitrepository-layout.html
@@ -850,7 +850,7 @@ This file is to help dumb transports discover what packs are available in this object store. Whenever a pack is added or removed, <code>git update-server-info</code> should be run - to keep this file up-to-date if the repository is + to keep this file up to date if the repository is published for dumb transports. <em>git repack</em> does this by default. </p> @@ -1228,7 +1228,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2017-02-15 15:17:51 PST +Last updated 2017-09-10 17:38:46 JST </div> </div> </body>
diff --git a/gitrepository-layout.txt b/gitrepository-layout.txt index f51ed4e..adf9554 100644 --- a/gitrepository-layout.txt +++ b/gitrepository-layout.txt
@@ -71,7 +71,7 @@ This file is to help dumb transports discover what packs are available in this object store. Whenever a pack is added or removed, `git update-server-info` should be run - to keep this file up-to-date if the repository is + to keep this file up to date if the repository is published for dumb transports. 'git repack' does this by default.
diff --git a/gittutorial.html b/gittutorial.html index bd15c79..2f37ed6 100644 --- a/gittutorial.html +++ b/gittutorial.html
@@ -841,7 +841,7 @@ <pre><code>$ git status On branch master Changes to be committed: -Your branch is up-to-date with 'origin/master'. +Your branch is up to date with 'origin/master'. (use "git reset HEAD <file>..." to unstage) modified: file1 @@ -1373,7 +1373,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2017-02-15 15:17:51 PST +Last updated 2017-09-10 17:38:46 JST </div> </div> </body>
diff --git a/gittutorial.txt b/gittutorial.txt index 794b833..242de31 100644 --- a/gittutorial.txt +++ b/gittutorial.txt
@@ -109,7 +109,7 @@ $ git status On branch master Changes to be committed: -Your branch is up-to-date with 'origin/master'. +Your branch is up to date with 'origin/master'. (use "git reset HEAD <file>..." to unstage) modified: file1
diff --git a/merge-options.txt b/merge-options.txt index 5b4a62e..4e32304 100644 --- a/merge-options.txt +++ b/merge-options.txt
@@ -39,7 +39,7 @@ --ff-only:: Refuse to merge and exit with a non-zero status unless the - current `HEAD` is already up-to-date or the merge can be + current `HEAD` is already up to date or the merge can be resolved as a fast-forward. --log[=<n>]::
diff --git a/technical/pack-protocol.html b/technical/pack-protocol.html index 5121d35..55db4f6 100644 --- a/technical/pack-protocol.html +++ b/technical/pack-protocol.html
@@ -952,7 +952,7 @@ terminate the connection by sending a flush-pkt, telling the server it can now gracefully terminate, and disconnect, when it does not need any pack data. This can happen with the ls-remote command, and also can happen when -the client already is up-to-date.</p></div> +the client already is up to date.</p></div> <div class="paragraph"><p>Otherwise, it enters the negotiation phase, where the client and server determine what the minimal packfile necessary for transport is, by telling the server what objects it wants, its shallow objects @@ -1396,7 +1396,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2017-05-22 23:52:01 PDT +Last updated 2017-09-10 17:38:46 JST </div> </div> </body>
diff --git a/technical/pack-protocol.txt b/technical/pack-protocol.txt index a349171..ed1eae8 100644 --- a/technical/pack-protocol.txt +++ b/technical/pack-protocol.txt
@@ -199,7 +199,7 @@ terminate the connection by sending a flush-pkt, telling the server it can now gracefully terminate, and disconnect, when it does not need any pack data. This can happen with the ls-remote command, and also can happen when -the client already is up-to-date. +the client already is up to date. Otherwise, it enters the negotiation phase, where the client and server determine what the minimal packfile necessary for transport is,
diff --git a/technical/trivial-merge.html b/technical/trivial-merge.html index b7d9b9f..e2e3955 100644 --- a/technical/trivial-merge.html +++ b/technical/trivial-merge.html
@@ -769,7 +769,7 @@ or the result.</p></div> <div class="paragraph"><p>If multiple cases apply, the one used is listed first.</p></div> <div class="paragraph"><p>A result which changes the index is an error if the index is not empty -and not up-to-date.</p></div> +and not up to date.</p></div> <div class="paragraph"><p>Entries marked <em>+</em> have stat information. Spaces marked <em>*</em> don’t affect the result.</p></div> <div class="literalblock"> @@ -800,7 +800,7 @@ empty, no entry is left for that stage). Otherwise, the given entry is left in stage 0, and there are no other entries.</p></div> <div class="paragraph"><p>A result of "no merge" is an error if the index is not empty and not -up-to-date.</p></div> +up to date.</p></div> <div class="paragraph"><p><strong>empty</strong> means that the tree must not have a directory-file conflict with the entry.</p></div> <div class="paragraph"><p>For multiple ancestors, a <em>+</em> means that this case applies even if @@ -854,7 +854,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2013-08-20 08:40:27 PDT +Last updated 2017-09-10 17:38:46 JST </div> </div> </body>
diff --git a/technical/trivial-merge.txt b/technical/trivial-merge.txt index c79d4a7..1f1c33d 100644 --- a/technical/trivial-merge.txt +++ b/technical/trivial-merge.txt
@@ -32,7 +32,7 @@ If multiple cases apply, the one used is listed first. A result which changes the index is an error if the index is not empty -and not up-to-date. +and not up to date. Entries marked '+' have stat information. Spaces marked '*' don't affect the result. @@ -65,7 +65,7 @@ left in stage 0, and there are no other entries. A result of "no merge" is an error if the index is not empty and not -up-to-date. +up to date. *empty* means that the tree must not have a directory-file conflict with the entry.
diff --git a/user-manual.html b/user-manual.html index 1c9373c..03a256c 100644 --- a/user-manual.html +++ b/user-manual.html
@@ -1,5 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Git User Manual</title><link rel="stylesheet" type="text/css" href="docbook-xsl.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div lang="en" class="book"><div class="titlepage"><div><div><h1 class="title"><a name="idp47093183424512"></a>Git User Manual</h1></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="preface"><a href="#idp47093183426064"></a></span></dt><dt><span class="chapter"><a href="#repositories-and-branches">1. Repositories and Branches</a></span></dt><dd><dl><dt><span class="section"><a href="#how-to-get-a-git-repository">How to get a Git repository</a></span></dt><dt><span class="section"><a href="#how-to-check-out">How to check out a different version of a project</a></span></dt><dt><span class="section"><a href="#understanding-commits">Understanding History: Commits</a></span></dt><dd><dl><dt><span class="section"><a href="#understanding-reachability">Understanding history: commits, parents, and reachability</a></span></dt><dt><span class="section"><a href="#history-diagrams">Understanding history: History diagrams</a></span></dt><dt><span class="section"><a href="#what-is-a-branch">Understanding history: What is a branch?</a></span></dt></dl></dd><dt><span class="section"><a href="#manipulating-branches">Manipulating branches</a></span></dt><dt><span class="section"><a href="#detached-head">Examining an old version without creating a new branch</a></span></dt><dt><span class="section"><a href="#examining-remote-branches">Examining branches from a remote repository</a></span></dt><dt><span class="section"><a href="#how-git-stores-references">Naming branches, tags, and other references</a></span></dt><dt><span class="section"><a href="#Updating-a-repository-With-git-fetch">Updating a repository with git fetch</a></span></dt><dt><span class="section"><a href="#fetching-branches">Fetching branches from other repositories</a></span></dt></dl></dd><dt><span class="chapter"><a href="#exploring-git-history">2. Exploring Git history</a></span></dt><dd><dl><dt><span class="section"><a href="#using-bisect">How to use bisect to find a regression</a></span></dt><dt><span class="section"><a href="#naming-commits">Naming commits</a></span></dt><dt><span class="section"><a href="#creating-tags">Creating tags</a></span></dt><dt><span class="section"><a href="#browsing-revisions">Browsing revisions</a></span></dt><dt><span class="section"><a href="#generating-diffs">Generating diffs</a></span></dt><dt><span class="section"><a href="#viewing-old-file-versions">Viewing old file versions</a></span></dt><dt><span class="section"><a href="#history-examples">Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#counting-commits-on-a-branch">Counting the number of commits on a branch</a></span></dt><dt><span class="section"><a href="#checking-for-equal-branches">Check whether two branches point at the same history</a></span></dt><dt><span class="section"><a href="#finding-tagged-descendants">Find first tagged version including a given fix</a></span></dt><dt><span class="section"><a href="#showing-commits-unique-to-a-branch">Showing commits unique to a given branch</a></span></dt><dt><span class="section"><a href="#making-a-release">Creating a changelog and tarball for a software release</a></span></dt><dt><span class="section"><a href="#Finding-commits-With-given-Content">Finding commits referencing a file with given content</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#Developing-With-git">3. Developing with Git</a></span></dt><dd><dl><dt><span class="section"><a href="#telling-git-your-name">Telling Git your name</a></span></dt><dt><span class="section"><a href="#creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#how-to-make-a-commit">How to make a commit</a></span></dt><dt><span class="section"><a href="#creating-good-commit-messages">Creating good commit messages</a></span></dt><dt><span class="section"><a href="#ignoring-files">Ignoring files</a></span></dt><dt><span class="section"><a href="#how-to-merge">How to merge</a></span></dt><dt><span class="section"><a href="#resolving-a-merge">Resolving a merge</a></span></dt><dd><dl><dt><span class="section"><a href="#conflict-resolution">Getting conflict-resolution help during a merge</a></span></dt></dl></dd><dt><span class="section"><a href="#undoing-a-merge">Undoing a merge</a></span></dt><dt><span class="section"><a href="#fast-forwards">Fast-forward merges</a></span></dt><dt><span class="section"><a href="#fixing-mistakes">Fixing mistakes</a></span></dt><dd><dl><dt><span class="section"><a href="#reverting-a-commit">Fixing a mistake with a new commit</a></span></dt><dt><span class="section"><a href="#fixing-a-mistake-by-rewriting-history">Fixing a mistake by rewriting history</a></span></dt><dt><span class="section"><a href="#checkout-of-path">Checking out an old version of a file</a></span></dt><dt><span class="section"><a href="#interrupted-work">Temporarily setting aside work in progress</a></span></dt></dl></dd><dt><span class="section"><a href="#ensuring-good-performance">Ensuring good performance</a></span></dt><dt><span class="section"><a href="#ensuring-reliability">Ensuring reliability</a></span></dt><dd><dl><dt><span class="section"><a href="#checking-for-corruption">Checking the repository for corruption</a></span></dt><dt><span class="section"><a href="#recovering-lost-changes">Recovering lost changes</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#sharing-development">4. Sharing development with others</a></span></dt><dd><dl><dt><span class="section"><a href="#getting-updates-With-git-pull">Getting updates with git pull</a></span></dt><dt><span class="section"><a href="#submitting-patches">Submitting patches to a project</a></span></dt><dt><span class="section"><a href="#importing-patches">Importing patches to a project</a></span></dt><dt><span class="section"><a href="#public-repositories">Public Git repositories</a></span></dt><dd><dl><dt><span class="section"><a href="#setting-up-a-public-repository">Setting up a public repository</a></span></dt><dt><span class="section"><a href="#exporting-via-git">Exporting a Git repository via the Git protocol</a></span></dt><dt><span class="section"><a href="#exporting-via-http">Exporting a git repository via HTTP</a></span></dt><dt><span class="section"><a href="#pushing-changes-to-a-public-repository">Pushing changes to a public repository</a></span></dt><dt><span class="section"><a href="#forcing-push">What to do when a push fails</a></span></dt><dt><span class="section"><a href="#setting-up-a-shared-repository">Setting up a shared repository</a></span></dt><dt><span class="section"><a href="#setting-up-gitweb">Allowing web browsing of a repository</a></span></dt></dl></dd><dt><span class="section"><a href="#how-to-get-a-git-repository-with-minimal-history">How to get a Git repository with minimal history</a></span></dt><dt><span class="section"><a href="#sharing-development-examples">Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#maintaining-topic-branches">Maintaining topic branches for a Linux subsystem maintainer</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#cleaning-up-history">5. Rewriting history and maintaining patch series</a></span></dt><dd><dl><dt><span class="section"><a href="#patch-series">Creating the perfect patch series</a></span></dt><dt><span class="section"><a href="#using-git-rebase">Keeping a patch series up to date using git rebase</a></span></dt><dt><span class="section"><a href="#rewriting-one-commit">Rewriting a single commit</a></span></dt><dt><span class="section"><a href="#reordering-patch-series">Reordering or selecting from a patch series</a></span></dt><dt><span class="section"><a href="#interactive-rebase">Using interactive rebases</a></span></dt><dt><span class="section"><a href="#patch-series-tools">Other tools</a></span></dt><dt><span class="section"><a href="#problems-With-rewriting-history">Problems with rewriting history</a></span></dt><dt><span class="section"><a href="#bisect-merges">Why bisecting merge commits can be harder than bisecting linear history</a></span></dt></dl></dd><dt><span class="chapter"><a href="#advanced-branch-management">6. Advanced branch management</a></span></dt><dd><dl><dt><span class="section"><a href="#fetching-individual-branches">Fetching individual branches</a></span></dt><dt><span class="section"><a href="#fetch-fast-forwards">git fetch and fast-forwards</a></span></dt><dt><span class="section"><a href="#forcing-fetch">Forcing git fetch to do non-fast-forward updates</a></span></dt><dt><span class="section"><a href="#remote-branch-configuration">Configuring remote-tracking branches</a></span></dt></dl></dd><dt><span class="chapter"><a href="#git-concepts">7. Git concepts</a></span></dt><dd><dl><dt><span class="section"><a href="#the-object-database">The Object Database</a></span></dt><dd><dl><dt><span class="section"><a href="#commit-object">Commit Object</a></span></dt><dt><span class="section"><a href="#tree-object">Tree Object</a></span></dt><dt><span class="section"><a href="#blob-object">Blob Object</a></span></dt><dt><span class="section"><a href="#trust">Trust</a></span></dt><dt><span class="section"><a href="#tag-object">Tag Object</a></span></dt><dt><span class="section"><a href="#pack-files">How Git stores objects efficiently: pack files</a></span></dt><dt><span class="section"><a href="#dangling-objects">Dangling objects</a></span></dt><dt><span class="section"><a href="#recovering-from-repository-corruption">Recovering from repository corruption</a></span></dt></dl></dd><dt><span class="section"><a href="#the-index">The index</a></span></dt></dl></dd><dt><span class="chapter"><a href="#submodules">8. Submodules</a></span></dt><dd><dl><dt><span class="section"><a href="#_pitfalls_with_submodules">Pitfalls with submodules</a></span></dt></dl></dd><dt><span class="chapter"><a href="#low-level-operations">9. Low-level Git operations</a></span></dt><dd><dl><dt><span class="section"><a href="#object-manipulation">Object access and manipulation</a></span></dt><dt><span class="section"><a href="#the-workflow">The Workflow</a></span></dt><dd><dl><dt><span class="section"><a href="#working-directory-to-index">working directory → index</a></span></dt><dt><span class="section"><a href="#index-to-object-database">index → object database</a></span></dt><dt><span class="section"><a href="#object-database-to-index">object database → index</a></span></dt><dt><span class="section"><a href="#index-to-working-directory">index → working directory</a></span></dt><dt><span class="section"><a href="#tying-it-all-together">Tying it all together</a></span></dt></dl></dd><dt><span class="section"><a href="#examining-the-data">Examining the data</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees">Merging multiple trees</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees-2">Merging multiple trees, continued</a></span></dt></dl></dd><dt><span class="chapter"><a href="#hacking-git">10. Hacking Git</a></span></dt><dd><dl><dt><span class="section"><a href="#object-details">Object storage format</a></span></dt><dt><span class="section"><a href="#birdview-on-the-source-code">A birds-eye view of Git’s source code</a></span></dt></dl></dd><dt><span class="chapter"><a href="#glossary">11. Git Glossary</a></span></dt><dd><dl><dt><span class="section"><a href="#git-explained">Git explained</a></span></dt></dl></dd><dt><span class="appendix"><a href="#git-quick-start">A. Git Quick Reference</a></span></dt><dd><dl><dt><span class="section"><a href="#quick-creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#managing-branches">Managing branches</a></span></dt><dt><span class="section"><a href="#exploring-history">Exploring history</a></span></dt><dt><span class="section"><a href="#making-changes">Making changes</a></span></dt><dt><span class="section"><a href="#merging">Merging</a></span></dt><dt><span class="section"><a href="#sharing-your-changes">Sharing your changes</a></span></dt><dt><span class="section"><a href="#repository-maintenance">Repository maintenance</a></span></dt></dl></dd><dt><span class="appendix"><a href="#todo">B. Notes and todo list for this manual</a></span></dt><dd><dl><dt><span class="section"><a href="#todo-list">Todo list</a></span></dt></dl></dd></dl></div><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a name="idp47093183426064"></a></h1></div></div></div><p>Git is a fast distributed revision control system.</p><p>This manual is designed to be readable by someone with basic UNIX +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Git User Manual</title><link rel="stylesheet" type="text/css" href="docbook-xsl.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div lang="en" class="book"><div class="titlepage"><div><div><h1 class="title"><a name="idp46276891337184"></a>Git User Manual</h1></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="preface"><a href="#idp46276891338784"></a></span></dt><dt><span class="chapter"><a href="#repositories-and-branches">1. Repositories and Branches</a></span></dt><dd><dl><dt><span class="section"><a href="#how-to-get-a-git-repository">How to get a Git repository</a></span></dt><dt><span class="section"><a href="#how-to-check-out">How to check out a different version of a project</a></span></dt><dt><span class="section"><a href="#understanding-commits">Understanding History: Commits</a></span></dt><dd><dl><dt><span class="section"><a href="#understanding-reachability">Understanding history: commits, parents, and reachability</a></span></dt><dt><span class="section"><a href="#history-diagrams">Understanding history: History diagrams</a></span></dt><dt><span class="section"><a href="#what-is-a-branch">Understanding history: What is a branch?</a></span></dt></dl></dd><dt><span class="section"><a href="#manipulating-branches">Manipulating branches</a></span></dt><dt><span class="section"><a href="#detached-head">Examining an old version without creating a new branch</a></span></dt><dt><span class="section"><a href="#examining-remote-branches">Examining branches from a remote repository</a></span></dt><dt><span class="section"><a href="#how-git-stores-references">Naming branches, tags, and other references</a></span></dt><dt><span class="section"><a href="#Updating-a-repository-With-git-fetch">Updating a repository with git fetch</a></span></dt><dt><span class="section"><a href="#fetching-branches">Fetching branches from other repositories</a></span></dt></dl></dd><dt><span class="chapter"><a href="#exploring-git-history">2. Exploring Git history</a></span></dt><dd><dl><dt><span class="section"><a href="#using-bisect">How to use bisect to find a regression</a></span></dt><dt><span class="section"><a href="#naming-commits">Naming commits</a></span></dt><dt><span class="section"><a href="#creating-tags">Creating tags</a></span></dt><dt><span class="section"><a href="#browsing-revisions">Browsing revisions</a></span></dt><dt><span class="section"><a href="#generating-diffs">Generating diffs</a></span></dt><dt><span class="section"><a href="#viewing-old-file-versions">Viewing old file versions</a></span></dt><dt><span class="section"><a href="#history-examples">Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#counting-commits-on-a-branch">Counting the number of commits on a branch</a></span></dt><dt><span class="section"><a href="#checking-for-equal-branches">Check whether two branches point at the same history</a></span></dt><dt><span class="section"><a href="#finding-tagged-descendants">Find first tagged version including a given fix</a></span></dt><dt><span class="section"><a href="#showing-commits-unique-to-a-branch">Showing commits unique to a given branch</a></span></dt><dt><span class="section"><a href="#making-a-release">Creating a changelog and tarball for a software release</a></span></dt><dt><span class="section"><a href="#Finding-commits-With-given-Content">Finding commits referencing a file with given content</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#Developing-With-git">3. Developing with Git</a></span></dt><dd><dl><dt><span class="section"><a href="#telling-git-your-name">Telling Git your name</a></span></dt><dt><span class="section"><a href="#creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#how-to-make-a-commit">How to make a commit</a></span></dt><dt><span class="section"><a href="#creating-good-commit-messages">Creating good commit messages</a></span></dt><dt><span class="section"><a href="#ignoring-files">Ignoring files</a></span></dt><dt><span class="section"><a href="#how-to-merge">How to merge</a></span></dt><dt><span class="section"><a href="#resolving-a-merge">Resolving a merge</a></span></dt><dd><dl><dt><span class="section"><a href="#conflict-resolution">Getting conflict-resolution help during a merge</a></span></dt></dl></dd><dt><span class="section"><a href="#undoing-a-merge">Undoing a merge</a></span></dt><dt><span class="section"><a href="#fast-forwards">Fast-forward merges</a></span></dt><dt><span class="section"><a href="#fixing-mistakes">Fixing mistakes</a></span></dt><dd><dl><dt><span class="section"><a href="#reverting-a-commit">Fixing a mistake with a new commit</a></span></dt><dt><span class="section"><a href="#fixing-a-mistake-by-rewriting-history">Fixing a mistake by rewriting history</a></span></dt><dt><span class="section"><a href="#checkout-of-path">Checking out an old version of a file</a></span></dt><dt><span class="section"><a href="#interrupted-work">Temporarily setting aside work in progress</a></span></dt></dl></dd><dt><span class="section"><a href="#ensuring-good-performance">Ensuring good performance</a></span></dt><dt><span class="section"><a href="#ensuring-reliability">Ensuring reliability</a></span></dt><dd><dl><dt><span class="section"><a href="#checking-for-corruption">Checking the repository for corruption</a></span></dt><dt><span class="section"><a href="#recovering-lost-changes">Recovering lost changes</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#sharing-development">4. Sharing development with others</a></span></dt><dd><dl><dt><span class="section"><a href="#getting-updates-With-git-pull">Getting updates with git pull</a></span></dt><dt><span class="section"><a href="#submitting-patches">Submitting patches to a project</a></span></dt><dt><span class="section"><a href="#importing-patches">Importing patches to a project</a></span></dt><dt><span class="section"><a href="#public-repositories">Public Git repositories</a></span></dt><dd><dl><dt><span class="section"><a href="#setting-up-a-public-repository">Setting up a public repository</a></span></dt><dt><span class="section"><a href="#exporting-via-git">Exporting a Git repository via the Git protocol</a></span></dt><dt><span class="section"><a href="#exporting-via-http">Exporting a git repository via HTTP</a></span></dt><dt><span class="section"><a href="#pushing-changes-to-a-public-repository">Pushing changes to a public repository</a></span></dt><dt><span class="section"><a href="#forcing-push">What to do when a push fails</a></span></dt><dt><span class="section"><a href="#setting-up-a-shared-repository">Setting up a shared repository</a></span></dt><dt><span class="section"><a href="#setting-up-gitweb">Allowing web browsing of a repository</a></span></dt></dl></dd><dt><span class="section"><a href="#how-to-get-a-git-repository-with-minimal-history">How to get a Git repository with minimal history</a></span></dt><dt><span class="section"><a href="#sharing-development-examples">Examples</a></span></dt><dd><dl><dt><span class="section"><a href="#maintaining-topic-branches">Maintaining topic branches for a Linux subsystem maintainer</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#cleaning-up-history">5. Rewriting history and maintaining patch series</a></span></dt><dd><dl><dt><span class="section"><a href="#patch-series">Creating the perfect patch series</a></span></dt><dt><span class="section"><a href="#using-git-rebase">Keeping a patch series up to date using git rebase</a></span></dt><dt><span class="section"><a href="#rewriting-one-commit">Rewriting a single commit</a></span></dt><dt><span class="section"><a href="#reordering-patch-series">Reordering or selecting from a patch series</a></span></dt><dt><span class="section"><a href="#interactive-rebase">Using interactive rebases</a></span></dt><dt><span class="section"><a href="#patch-series-tools">Other tools</a></span></dt><dt><span class="section"><a href="#problems-With-rewriting-history">Problems with rewriting history</a></span></dt><dt><span class="section"><a href="#bisect-merges">Why bisecting merge commits can be harder than bisecting linear history</a></span></dt></dl></dd><dt><span class="chapter"><a href="#advanced-branch-management">6. Advanced branch management</a></span></dt><dd><dl><dt><span class="section"><a href="#fetching-individual-branches">Fetching individual branches</a></span></dt><dt><span class="section"><a href="#fetch-fast-forwards">git fetch and fast-forwards</a></span></dt><dt><span class="section"><a href="#forcing-fetch">Forcing git fetch to do non-fast-forward updates</a></span></dt><dt><span class="section"><a href="#remote-branch-configuration">Configuring remote-tracking branches</a></span></dt></dl></dd><dt><span class="chapter"><a href="#git-concepts">7. Git concepts</a></span></dt><dd><dl><dt><span class="section"><a href="#the-object-database">The Object Database</a></span></dt><dd><dl><dt><span class="section"><a href="#commit-object">Commit Object</a></span></dt><dt><span class="section"><a href="#tree-object">Tree Object</a></span></dt><dt><span class="section"><a href="#blob-object">Blob Object</a></span></dt><dt><span class="section"><a href="#trust">Trust</a></span></dt><dt><span class="section"><a href="#tag-object">Tag Object</a></span></dt><dt><span class="section"><a href="#pack-files">How Git stores objects efficiently: pack files</a></span></dt><dt><span class="section"><a href="#dangling-objects">Dangling objects</a></span></dt><dt><span class="section"><a href="#recovering-from-repository-corruption">Recovering from repository corruption</a></span></dt></dl></dd><dt><span class="section"><a href="#the-index">The index</a></span></dt></dl></dd><dt><span class="chapter"><a href="#submodules">8. Submodules</a></span></dt><dd><dl><dt><span class="section"><a href="#_pitfalls_with_submodules">Pitfalls with submodules</a></span></dt></dl></dd><dt><span class="chapter"><a href="#low-level-operations">9. Low-level Git operations</a></span></dt><dd><dl><dt><span class="section"><a href="#object-manipulation">Object access and manipulation</a></span></dt><dt><span class="section"><a href="#the-workflow">The Workflow</a></span></dt><dd><dl><dt><span class="section"><a href="#working-directory-to-index">working directory → index</a></span></dt><dt><span class="section"><a href="#index-to-object-database">index → object database</a></span></dt><dt><span class="section"><a href="#object-database-to-index">object database → index</a></span></dt><dt><span class="section"><a href="#index-to-working-directory">index → working directory</a></span></dt><dt><span class="section"><a href="#tying-it-all-together">Tying it all together</a></span></dt></dl></dd><dt><span class="section"><a href="#examining-the-data">Examining the data</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees">Merging multiple trees</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees-2">Merging multiple trees, continued</a></span></dt></dl></dd><dt><span class="chapter"><a href="#hacking-git">10. Hacking Git</a></span></dt><dd><dl><dt><span class="section"><a href="#object-details">Object storage format</a></span></dt><dt><span class="section"><a href="#birdview-on-the-source-code">A birds-eye view of Git’s source code</a></span></dt></dl></dd><dt><span class="chapter"><a href="#glossary">11. Git Glossary</a></span></dt><dd><dl><dt><span class="section"><a href="#git-explained">Git explained</a></span></dt></dl></dd><dt><span class="appendix"><a href="#git-quick-start">A. Git Quick Reference</a></span></dt><dd><dl><dt><span class="section"><a href="#quick-creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#managing-branches">Managing branches</a></span></dt><dt><span class="section"><a href="#exploring-history">Exploring history</a></span></dt><dt><span class="section"><a href="#making-changes">Making changes</a></span></dt><dt><span class="section"><a href="#merging">Merging</a></span></dt><dt><span class="section"><a href="#sharing-your-changes">Sharing your changes</a></span></dt><dt><span class="section"><a href="#repository-maintenance">Repository maintenance</a></span></dt></dl></dd><dt><span class="appendix"><a href="#todo">B. Notes and todo list for this manual</a></span></dt><dd><dl><dt><span class="section"><a href="#todo-list">Todo list</a></span></dt></dl></dd></dl></div><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a name="idp46276891338784"></a></h1></div></div></div><p>Git is a fast distributed revision control system.</p><p>This manual is designed to be readable by someone with basic UNIX command-line skills, but no previous knowledge of Git.</p><p><a class="xref" href="#repositories-and-branches" title="Chapter 1. Repositories and Branches">Chapter 1, <i>Repositories and Branches</i></a> and <a class="xref" href="#exploring-git-history" title="Chapter 2. Exploring Git history">Chapter 2, <i>Exploring Git history</i></a> explain how to fetch and study a project using git—read these chapters to learn how to build and test a particular version of a software project, search for @@ -811,10 +811,12 @@ fetch = +refs/heads/*:refs/remotes/example/*</pre><p>which lets you do the same push with just</p><pre class="literallayout">$ git push public-repo master</pre><p>See the explanations of the <code class="literal">remote.<name>.url</code>, <code class="literal">branch.<name>.remote</code>, and <code class="literal">remote.<name>.push</code> options in <a class="ulink" href="git-config.html" target="_top">git-config(1)</a> for details.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="forcing-push"></a>What to do when a push fails</h3></div></div></div><p>If a push would not result in a <a class="link" href="#fast-forwards" title="Fast-forward merges">fast-forward</a> of the -remote branch, then it will fail with an error like:</p><pre class="literallayout">error: remote 'refs/heads/master' is not an ancestor of - local 'refs/heads/master'. - Maybe you are not up-to-date and need to pull first? -error: failed to push to 'ssh://yourserver.com/~you/proj.git'</pre><p>This can happen, for example, if you:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> +remote branch, then it will fail with an error like:</p><pre class="literallayout"> ! [rejected] master -> master (non-fast-forward) +error: failed to push some refs to '...' +hint: Updates were rejected because the tip of your current branch is behind +hint: its remote counterpart. Integrate the remote changes (e.g. +hint: 'git pull ...') before pushing again. +hint: See the 'Note about fast-forwards' in 'git push --help' for details.</pre><p>This can happen, for example, if you:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> use <code class="literal">git reset --hard</code> to remove already-published commits, or </li><li class="listitem"> use <code class="literal">git commit --amend</code> to replace already-published commits @@ -893,7 +895,7 @@ $ cd work</pre><p>Linus’s tree will be stored in the remote-tracking branch named origin/master, and can be updated using <a class="ulink" href="git-fetch.html" target="_top">git-fetch(1)</a>; you can track other public trees using <a class="ulink" href="git-remote.html" target="_top">git-remote(1)</a> to set up a "remote" and -<a class="ulink" href="git-fetch.html" target="_top">git-fetch(1)</a> to keep them up-to-date; see +<a class="ulink" href="git-fetch.html" target="_top">git-fetch(1)</a> to keep them up to date; see <a class="xref" href="#repositories-and-branches" title="Chapter 1. Repositories and Branches">Chapter 1, <i>Repositories and Branches</i></a>.</p><p>Now create the branches in which you are going to work; these start out at the current tip of origin/master branch, and should be set up (using the <code class="literal">--track</code> option to <a class="ulink" href="git-branch.html" target="_top">git-branch(1)</a>) to merge changes in from
diff --git a/user-manual.txt b/user-manual.txt index bc29298..b4d88af 100644 --- a/user-manual.txt +++ b/user-manual.txt
@@ -2044,10 +2044,12 @@ remote branch, then it will fail with an error like: ------------------------------------------------- -error: remote 'refs/heads/master' is not an ancestor of - local 'refs/heads/master'. - Maybe you are not up-to-date and need to pull first? -error: failed to push to 'ssh://yourserver.com/~you/proj.git' + ! [rejected] master -> master (non-fast-forward) +error: failed to push some refs to '...' +hint: Updates were rejected because the tip of your current branch is behind +hint: its remote counterpart. Integrate the remote changes (e.g. +hint: 'git pull ...') before pushing again. +hint: See the 'Note about fast-forwards' in 'git push --help' for details. ------------------------------------------------- This can happen, for example, if you: @@ -2193,7 +2195,7 @@ Linus's tree will be stored in the remote-tracking branch named origin/master, and can be updated using linkgit:git-fetch[1]; you can track other public trees using linkgit:git-remote[1] to set up a "remote" and -linkgit:git-fetch[1] to keep them up-to-date; see +linkgit:git-fetch[1] to keep them up to date; see <<repositories-and-branches>>. Now create the branches in which you are going to work; these start out